package com.xdcplus.web.service;

import com.xdcplus.mp.service.BaseService;
import com.xdcplus.pager.vo.PageVO;
import com.xdcplus.web.common.pojo.dto.DwWorkConfDTO;
import com.xdcplus.web.common.pojo.dto.DwWorkConfFilterDTO;
import com.xdcplus.web.common.pojo.entity.DwWorkConf;
import com.xdcplus.web.common.pojo.vo.DwWorkConfVO;

import java.util.List;


/**
 * 执行任务计划(DwWorkConf)表服务接口层
 *
 * @author ma.qing
 * @since 2023-07-06 18:24:55
 */
public interface DwWorkConfService extends BaseService<DwWorkConf, DwWorkConf, DwWorkConfVO> {

    /**
     * 添加执行任务计划(DwWorkConf)
     *
     * @param dwWorkConfDTO 执行任务计划(DwWorkConfDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveDwWorkConf(DwWorkConfDTO dwWorkConfDTO);

    /**
     * 修改执行任务计划(DwWorkConf)
     *
     * @param dwWorkConfDTO 执行任务计划(DwWorkConfDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean updateDwWorkConf(DwWorkConfDTO dwWorkConfDTO);

    /**
     * 批量保存或更新执行任务计划(DwWorkConf)
     *
     * @param dwWorkConfList 执行任务计划(DwWorkConfList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatch(List<DwWorkConf> dwWorkConfList);

    /**
     * 批量保存或更新执行任务计划(DwWorkConfDTOList)
     *
     * @param dwWorkConfDTOList 执行任务计划(DwWorkConfDTOList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatchByDTOList(List<DwWorkConfDTO> dwWorkConfDTOList);

    /**
     * 删除执行任务计划(DwWorkConf)
     *
     * @param id 执行任务计划(DwWorkConf)主键
     * @return {@link Boolean} 是否成功
     */
    Boolean deleteDwWorkConfLogical(Long id);
    
    Boolean deleteDwWorkConfByIds(String ids);

    /**
     * 查询执行任务计划(DwWorkConf)
     *
     * @param dwWorkConfFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<DwWorkConfVO>} 状态信息
     */
    List<DwWorkConfVO> queryDwWorkConfVOList(DwWorkConfFilterDTO dwWorkConfFilterDTO);

    /**
     * 查询执行任务计划(DwWorkConf)
     *
     * @param dwWorkConfFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<DwWorkConfVO>} 状态信息
     */
    PageVO<DwWorkConfVO> queryDwWorkConf(DwWorkConfFilterDTO dwWorkConfFilterDTO);

    /**
     * 查询一个
     *
     * @param id 执行任务计划(DwWorkConf)主键
     * @return {@link DwWorkConfVO} 执行任务计划(DwWorkConf)信息
     */
    DwWorkConfVO queryDwWorkConfById(Long id);

    /**
     * 通过名称查询配置
     *
     * @param etlName 任务名称
     * @return DwWorkConf
     */
    DwWorkConf queryDwWorkConfByEtlName(String etlName);

    void updateConfById(DwWorkConf dwWorkConf);


}
